Initiating multiple connections from multiple communication devices

ABSTRACT

Methods for establishing simultaneous connections on a plurality of communication devices associated with a user implemented on an instant messaging program by issuing ring tones, audible notifications, or visual indications to the plurality of communication devices and constructing a state diagram for sending the ring tones, the audible notifications, or the visual indications to the plurality of communication devices.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation of, and claims priority to, U.S.patent application Ser. No. 11/762,614, “now U.S. Pat. No. 8,244,878”,filed on Jun. 13, 2007, and entitled “User Experience for MultipleSimultaneous Connections on an Instant Messaging Program,” which isincorporated herein by reference in its entirety.

TECHNICAL FIELD

The subject matter relates generally to an instant messaging (IM)program, and more specifically, to a user experience with multiplesimultaneous connections on the instant messaging program.

BACKGROUND

An IM program may offer a user access to multiple IM connections onseveral communication devices (e.g., a personal computer or a mobilecellular phone). Typically, these multiple connections may require theuser to log in every time on the various communication devices. Themultiple connections on the IM program present many challenges for usersin managing and maintaining all of the connections. For example, the IMprograms may provide connections to twelve devices, creating havoc onkeeping track of the connections on all the devices.

Furthermore, instant messages may appear on a device that is logged onto an IM program, but is not actively participating in the IM.Unfortunately, an individual using the “inactive” device may view theinstant messages without the user's permission. Even within the IMprogram, there is little indication of knowledge and control of themultiple connections. Thus, existing IM programs that provide multipleconnections are not up to the tasks of developing a user interface incontrolling the connections, monitoring all the devices that are loggedon, and ensuring privacy of the user.

To further illustrate the problems of multiple connections, the user mayreceive repetitive instant messages on several communication deviceslogged on the system and may have to pay for instant messages sent to amobile device. As a result, the user experience is often frustrating,such as viewing repetitive instant messages and having to close theinstant messages separately on each communication device. The problem ofinstant messages on a mobile device has not been addressed. Thus, theinstant messages may unnecessarily be sent to the mobile device, whichcan be very expensive and reduce or drain the battery power of themobile device. Consequently, existing IM programs have not found a wayto control the multiple communications transmitted to or received on thecommunication devices and in particular to a mobile device.

Multiple connections provide an aggregated view of a user's presence,Multiple Points of Presence (MPOP), but these programs and systems fallshort in keeping the multiple connections “alive” or connected to theprogram. This is troublesome since the user may desire to switchcommunication from one device to another device. Thus, these multipleconnections on instant message programs have not provided a satisfyinguser experience.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

In view of the above, this disclosure describes establishing multiplesimultaneous connections on an instant messaging (IM) program or serviceto enhance a user experience. The user interface and the multiplesimultaneous connections on communication devices associated with theuser improve the efficiency and convenience of logging on, logging out,and monitoring connections on the communication devices for anycommunication device, locally or remotely. Also, the user interface formultiple simultaneous connections allows the user to control and tomaintain privacy of the communication.

The messenger server will establish multiple simultaneous connections,which has a user interface to issue a notification to indicate a requestfor communication, an email, or an alert to the communication devices.By responding on a particular communication device, the user will causethe communication to transmit to that particular communication device,which is considered “active” at the desires of the user. To furtherincrease the user experience, the resultant communication transmitted toor received from the active device may be replicated to the othercommunication devices to not miss any communication. To cater to themobility needs of the user, the multiple simultaneous connections arekept “alive” or connected, enabling the user to switch from one deviceto another device without having to discontinue the communication or login every time.

BRIEF DESCRIPTION OF THE DRAWINGS

The Detailed Description is set forth with reference to the accompanyingfigures. The teachings are described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical items.

FIG. 1 is an overview block diagram of an exemplary instant messagingenvironment.

FIG. 2 is a block diagram of an exemplary instant messaging system.

FIG. 3 is a block diagram showing an exemplary messenger server of thesystem of FIG. 2.

FIG. 4 is block diagram of an exemplary multiple simultaneousconnections to enhance the user experience of the system of FIG. 2.

FIG. 5 is a block diagram of an exemplary algorithm for notifying andresponding on a non-mobile device of the system of FIG. 2.

FIG. 6 is a flowchart showing an exemplary algorithm for notifying andresponding on a mobile device of the system of FIG. 2.

FIG. 7 is a flowchart showing an exemplary process for notifying andresponding on a mobile device of the algorithm of FIG. 6.

FIG. 8 is a schematic showing an exemplary user interface for signing inof the system of FIG. 2.

FIG. 9 is a schematic showing an exemplary user interface for privacyoptions of the system of FIG. 2.

FIG. 10 is a schematic showing an exemplary user interface forinteractive options of the system of FIG. 2.

DETAILED DESCRIPTION

Overview

This disclosure is directed to multiple simultaneous connections on anInstant Messaging (IM) program or service, and is shown and described inthe context of enhancing a user experience. This enhancement isaccomplished through user interfaces, user interactions, servers, andsystem responses. The user interface for the multiple simultaneousconnections allows the user to maintain and to control connections onthe communication devices and to ensure privacy. The user is aware ofwhich communication devices are connected to the IM program. A benefitto the user is that signing in or logging on to the IM program on a newcommunication device will not cause the other communication devices tosign out or log off the program. Furthermore, the user interface ensuresthe user options for privacy by choosing to hide instant messages on acommunication device that is not actively participating in thecommunication.

In one aspect, an algorithm, known as a non-mobile algorithm, respondsto the notification requesting communication, email, or alert. Thenon-mobile algorithm constructs a state diagram for sending thenotifications, emails, or alerts to the communication devices that arelogged into the IM program. If the user responds on the non-mobiledevice, the communication continues to transmit to and receive from thenon-mobile device, in the active mode.

In another aspect, another algorithm, known as a mobile algorithm,responds to the notification requesting communication, email, or alert.The mobile algorithm constructs a state diagram for sending thenotifications or alerts to the communication devices that are loggedinto the IM program. If the user responds on the mobile device, thecommunication continues to transmit to and receive from the mobiledevice, which is in the active mode.

In another aspect, another algorithm, known as switching algorithm,responds to the user switching communication from one communicationdevice to another device. The switching algorithm constructs a statediagram for sending the notifications, emails, or alerts to thecommunication devices that are logged into the IM program. For example,the user responds on a first device continuing the communication totransmit to and receive from the first device, which is in the activemode. To further enhance the user experience, the multiple simultaneousconnections are alive, enabling the user to switch from onecommunication device to another device without having to discontinue thecommunication or logging back into the program.

Thus, the user interface and the multiple simultaneous connections onthe IM program vastly improve the efficiency and convenience of the userexperience. The user experience for multiple simultaneous connectionsdescribed herein are not limited to any particular application ornetwork, but may be applied in many contexts and environments. By way ofexample and not limitation, the user experience for multiplesimultaneous connections may be employed in IM programs, IM services, IMnetworks, applications, networks, and the like. For example, the userexperience for multiple simultaneous connections could be used in .NETMessenger Service, MSN® Messenger, Windows Live™, Windows Live™Messenger, Windows Mobile®, Windows®, and Windows Vista™.

Exemplary Instant Messaging Environment

FIG. 1 is an overview block diagram of an exemplary instant messaging(IM) environment 100 for providing IM access. A user 102 withcommunication devices 104 may access IM through an IM applicationprogram 106 or an IM service 108. IM is real-time communication, whichmeans current or actual communication between two or more users. Theterm “user” 102, and “consumer” may be used interchangeably to describea person or an entity using a communication device and/or a person or anentity subscribing to an IM program or service. The programs 106 or theservices 108, include technology resources, which include access to theweb, databases, email, file sharing, software programs, and the like.

Communication devices 104 that are suitable for use, include but are notlimited to, a cellular phone 104(a), a personal digital assistant104(b), a personal computer 104(c), and the like. These various types ofcommunication devices 104 in operation with the programs 106 or theservices 108 enable the user 102 to conduct an activity, such ascommunicating with others, transmitting or receiving data, text, video,audio, email, accessing web pages for information, accessing sharedfolders, or files, sharing information with others, and the like. Theuser 102 may access the application 106 or service 108 for work relatedpurposes or for personal use. The terms application and program are usedinterchangeably to describe capabilities that allows the user 102 accessto real-time communication, such as IM. For example, the program orapplication may be downloaded onto the user's communication devices 104.

Shown in FIG. 1, is an exemplary implementation of a messenger server110(a) implementing the IM application 106 or IM service 108 on anetwork or an IM network (not shown). A mobile server 110(b) may beincluded to help manage the mobile communication devices working incooperation with the messenger server 110(a). The network or the IMnetwork may be defined as hardware, software, and media connectinginformation technology resources. Typically, networks or IM networks areformed by connecting clients, servers, a number of other components likerouters, switches, and the like through a communication media. FIG. 3discusses the messenger server 110(a) in more detail.

Illustrated in FIG. 1 is the messenger server 110(a) that provides theprogram 106 or the service 108 to the communication devices 104 of theuser 102, to communicate in real-time with one or more computing devicesof individuals. The computing devices, may include, but are not limitedto a personal computer 120, a file server 122, a management server 124,a web server 126, a database server 128, and the like. These devices maybe associated with individuals known as user 130(a), 130(b), . . .130(n) or with other individuals, businesses, education facilities,government associations, hospitals, and the like.

Turning to FIG. 2, this figure illustrates an exemplary system 200 forimplementing the IM program of multiple simultaneous connections toenhance the user experience. The system 200 illustrates architecture ofsome components on a client side 202 and a server side 204.Alternatively, these components may reside in multiple other locations.For instance, all of the components of FIG. 2 may exist on the clientside 202. Furthermore, two or more of the illustrated components maycombine to form a single component at a single location.

The client side 202 includes communication devices 104 to providereal-time communication on the IM system 200. The term “communicationdevice” means a device allowing the user 102 to interact with anelectronic information system or the like. The communication devices 104include but are not limited to, a cellular phone 104(a), a personaldigital assistant (PDA) 104(b), a personal computer 104(c), a laptopcomputer 104(d), a desktop computer 104(e), a workstation 104(f), orother similar devices. The devices 104 that are considered non-mobile,include the personal computer 104(c), the laptop computer 104(d), thedesktop computer 104(e), and the workstation 104(f). The devices 104that are considered mobile, include the cellular phone 104(a), the PDA104(b), and the laptop computer 104(d).

As illustrated, the server side 204 of the system 200 includes an IMprogram 106, an IM service 108, a messenger server 110(a), and a mobileserver 110(b). Shown are two options of providing IM access, the program106 and the service 108, which are merely examples and are not to belimiting. The user 102 downloads the IM program 106 from an IM providerto the communication devices 104. The user 102 may access the IM service108 through a web service provider or web browser without having todownload software. This is advantageous when accessing IM through apublic facility, such as the library, employer's computer, communicationdevices with limited memory capacity, and the like. Having described themessenger server 110(a) and the mobile server 110(b) as separateentities, a single server may serve both functions.

FIG. 2 specifically illustrates the messenger server 110(a) and themobile server 110(b) on the server side 204 communicating via a network206 with the communication devices 104 on the client side 202. Thenetwork 206 may include the Internet, a Local Area Network (LAN), a WideArea Network (WAN), a wireless network, business WiFi LANs, home WiFiLANs, public WiFi hotspots, WiMAX wide area networks, cellulartechnologies, and/or the like. Also, the cellular devices function ineither unlicensed wireless or licensed cellular technologies, such asunlicensed IEEE 802.11 wireless networking standard and licensedcellular technology, such as global system for mobile communications(GSM) or code division multiple access (CDMA).

In an exemplary implementation, the user 102 may use the laptop computer104(d) at home by accessing a WiFi LAN located in his or her home. TheWiFi LAN may enable the user 102 to access a broadband data service,such as Digital Subscriber Line (DSL) service, satellite Internetservice, or cable modem service.

Messenger Server

FIG. 3 illustrates example components, denoted generally at 300, withinthe messenger server 110(a) of FIG. 2 in more detail. The messengerserver 110(a) may be configured as any suitable computing device capableof implementing an IM program 106 or service 108 with multiplesimultaneous connections. In one exemplary configuration, the messengerserver 110(a) comprises at least one processing unit 302 and memory 304.The processing unit 302 may be implemented as appropriate in hardware,software, firmware, or combinations thereof. Software or firmwareimplementations of the processing unit 302 may include computer- ormachine-executable instructions written in any suitable programminglanguage to perform the various functions described.

Memory 304 may store programs of instructions that are loadable andexecutable on the processor 302, as well as data generated during theexecution of these programs. Depending on the configuration and type ofcomputing device, memory 304 may be volatile (such as RAM) and/ornon-volatile (such as ROM, flash memory, etc.). The messenger server110(a) may also include additional removable storage 306 and/ornon-removable storage 308 including, but not limited to, magneticstorage, optical disks, and/or tape storage. The disk drives and theirassociated computer-readable media may provide non-volatile storage ofcomputer readable instructions, data structures, program modules, andother data for the communication devices.

Turning to the contents of the memory 304 in more detail, may include anoperating system 310, one or more application programs 106 or service108 for implementing all or a part of the instant messaging program withmultiple simultaneous connections. In one implementation, the memory 304includes the IM program 106 including a user interface module 312 and adata management module 314. The user interface module 312 includes butis not limited to, presenting the user with a user interface for the IMprogram to sign or sign out of the program, to prompt the user toindicate presence, to illustrate messages are on hold or not shown, andto display connected and disconnected communication devices 104. Thedata management module 314 stores and manages storage of information,such as profile information, contact information, display picture,sounds, communication devices of the user 102, and the like, and maycommunicate with one or more local and/or remote databases or services.

The memory 304 further includes a presence module 316 and a datamanagement module 318. The presence module 316 may identify signing inand out of the IM program 106, the status of the user 102, and the like.The endpoint management module 318 includes but is not limited to,tracking a state of the different communication devices 104, signing inand out of the IM program 106, and the like. The endpoint managementmodule 318 interacts with the presence module 316 and the data storagemodule 314 to perform connections, disconnections, search functions,such as performing searches to identify the communication devices thatare logged on, logged off, state of the communication devices, thestatus of the user 102, and the like.

Computer storage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer readable instructions, data structures,program modules or other data. Memory 304, removable storage 306, andnon-removable storage 308 are all examples of computer storage media.Additional types of computer storage media that may be present include,but are not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium which can be used tostore the desired information and which can accessed by the messengerserver 110(a) or other computing device.

The messenger server 110(a) may also contain communicationsconnection(s) 320 that allow the messenger server 110(a) to communicatewith the mobile server 110(b), the user terminals, and/or other deviceson the network 206. Communications connection(s) 320 is an example ofcommunication media. Communication media typically embodies computerreadable instructions, data structures, and program modules. By way ofexample, and not limitation, communication media includes wired mediasuch as a wired network or direct-wired connection, and wireless mediasuch as acoustic, RF, infrared and other wireless media. The termcomputer readable media as used herein includes both storage media andcommunication media.

The messenger server 110(a) may also include input device(s) 322 such asa keyboard, mouse, pen, voice input device, touch input device, etc.,and output device(s) 324, such as a display, speakers, printer, etc. Themessenger server 110(a) may include a database hosted on the messengerserver 110(a) include, but is not limited to, a contact list, profileinformation, display name, display picture, mobile phone number, networkaddresses, list of the communication devices 104, and the like. Allthese devices are well known in the art and need not be discussed atlength here.

Multiple Simultaneous Connections with Mirroring

FIG. 4 is a block diagram illustrating mirroring of the communicationand establishing multiple simultaneous connections 400 for implementingthe exemplary IM system of FIG. 2. The solid lines extending from theuser 102 indicate signing in or logging on to the messenger server110(a) to establish the multiple simultaneous connections. The user 102signs on to the IM program 106 with the communication devices 104, whichmay also be referred to as endpoints. The system 200 enhances the userexperience by allowing the user 102 to log on or sign in to onecommunication device 104 without logging off or signing out of anothercommunication device 104. In an exemplary implementation, the multiplesimultaneous connections will transmit communication to all of the alivenon-mobile communication devices to ensure the user 102 will not missany messages.

In an exemplary implementation, the user 102 signs in on a desktopcomputer 104(e) at home. The cellular phone 104(a) automatically signsin to the IM program 106 upon activating the communication device 104,without signing off the user 102 from the desktop computer 104(e). Thus,the user 102 may respond on the desktop computer 104(e) or the cellularphone 104(a).

In an exemplary implementation, when the user 102 signs in a secondcommunication device 104 to the IM program 106, by default, the messagesand notifications sent to the first communication device will be put onhold. The messages and notifications will continue to transmit to thefirst device but the windows are hidden and the sounds associated withreceiving IM are muted. Thus, the user 102 may protect the privacy ofthe communication and avoid annoying sounds and popups for a personusing the first communication device, such as the desktop computer104(e).

Once the user 102 signs in or logs on a new communication device 104 tothe IM program 106, a notification of a new connection alerts the user102. This new connection is included on a list of the communicationdevices 104 connected on the IM program 106. Thus, the user 102 maymonitor and control the connections of the communication devices 104,remotely and locally. An added benefit is that the user 102 maydisconnect the communication device 104 remotely.

Notifications sent to the user 102 include a request for communication,alert, or email. The notifications may further include ring tones,audible notifications, or visual indications. The term “approximately”indicates that the notifications may arrive at two or more communicationdevices 104 at slightly different times, owing to device capabilities,network conditions, geographical factors affecting the differentdevices, and the like. The messenger server 110(a) sends or issuesnotifications for the request for communication, email, or alert to thecommunication devices 104 signed or logged into the IM program. Once theuser 102 responds on a particular communication device, thecommunication continues to transmit to that particular communicationdevice, which is considered in the “active” mode and particularly, atthe desires of the user 102.

To ensure the user 102 does not miss any communication, the messengerserver 110(a) replicates or mirrors the resultant communicationtransmitted to or received from the active communication device to theother non-mobile communication devices. For illustrative purposes, thesolid lines illustrate the communication replicated or mirrored on thenon-mobile communication devices. For example, the user 102 responds onthe laptop computer 104(d), so communication may be replicated ormirrored from the laptop computer 104(d) (in the active mode) to thepersonal computer 110(c) to the workstation 104(f) and to the desktopcomputer 104(e). This may vary depending on which communication devices104 are in the active mode and which communication devices 104 aresigned into the IM program. This is for illustration purposes only asthere is no particular order.

In an exemplary implementation, the presence and communication issynchronized across all the communication devices 104. The user 102signs on and the presence information is kept in synchronization acrossall the endpoints, enabling the users 130(a) . . . 130(n) to monitor theuser's presence. Also, the synchronization allows the user 102 toretrieve information, files, audio, and the like on a non-mobile devicethat was initially sent to the mobile device.

In FIG. 4, the dashed lines illustrate the communication from thenon-mobile communication devices that may be mirrored or replicated toand from the mobile devices. The dashed lines indicate the communicationmay be replicated or mirrored when the user 102 responds on the mobiledevice. For example, the user 102 responds on cellular phone 104(a), thecommunication will be replicated to the non-mobile devices.

However, if the user 102 chooses to not respond on the mobile device andresponds on the non-mobile device, the communication transmitted to andfrom the non-mobile communication devices will not be replicated ormirrored to the mobile devices. This is to prolong battery power of themobile device and to not incur expenses for use of the mobile device.Thus, the messenger server 110(a) will not replicate or mirror thecommunication on the mobile device. However, the connection is keptalive on the mobile device. Furthermore, the user 102 may retrieve ahistory of the communication transmitted on the non-mobile communicationdevices, by selecting an option on the mobile device. FIGS. 6 and 7 willdiscuss this in more details.

In an exemplary implementation, the user 102 may sign in to threecommunication devices, such as the mobile phone 104(a), personalcomputer 104(c), and laptop computer 104(d), and receive notification ofrequest for communication, email, or alert on these communicationdevices. Assuming the user 102 receives notifications, for example, onall three communication devices, the messenger server 110(a) sends thenotifications to the number for the mobile phone 104(a) and theidentified network addresses for the personal computer 104(c) and thelaptop 104(d).

In an exemplary implementation, the user 102 may access IM on the laptopcomputer 104(d) or the desktop computer 104(e) while away from home orthe office. By way of illustration, the user 102 may access his or herown desktop computer 104(e) remotely, without being in or near theoffice. In another example, the user 102 may close a conversation on onecommunication device 104, which will close conversation on all of thecommunication devices 104. This makes it more efficient for the user 102in not having to view repetitive messages and having to close eachconversation on all of the communication devices 104.

Responding to Notification

FIGS. 5-7 illustrate exemplary ways in which the user 102 associatedwith the communication devices 104 may respond to the notification torespond, the alert, or email. For convenience only, the process flowsare described in connection with certain components shown in FIGS. 2 and4. However, it is understood that the process flows may be performedwith other components without departing from the spirit and scope of thedescription. These processes highlight additional actions facilitated byresponding, and do not replace the multiple simultaneous connectionsprotocol 400. Instead, the processes of FIGS. 5-7 may be utilized inconjunction with and in addition to process 400.

FIG. 5 illustrates an exemplary process 500 for responding to thenotification to request communication, email, or alert. An algorithm,known as a non-mobile algorithm, sends a notification from the messengerserver 110(a), on the server side 204 and waits for a response to thenotification requesting communication, email, or alert. As mentionedpreviously, the mobile server 110(b) may be included as a separatecomponent. The non-mobile algorithm constructs a state diagram forsending the notifications or alerts to the communication devices 104,located on the client side 202. If the user 102 responds on thenon-mobile device, the communication continues to transmit to andreceive from the non-mobile device, which is in the active mode.

This algorithm 500 is described with reference to the desktop computer104(e), the personal computer 104(c), and the PDA 104(b), while otherdevices may similarly utilize this process. Shown at Notifications 502,represent the messenger server 110(a) sending or issuing notificationsof a request to respond to a communication invitation, email, or alertto the three communication devices, that are signed in to the program106. At Respond 504, represents the desktop computer 104(e) sending aresponse to the messenger server 110(a), to respond to the invitationrequest, alert, or to receive email on the desktop computer 104(e).

Illustrated at Not Respond 506, the personal computer 104(c) connectionis kept alive, but is not active, due to not responding. Shown at NotRespond 508, represents the PDA 104(b) not responding to the messengerserver 110(a) to the request to communicate, alert, or to receive emailon the PDA 104(b). Again, the connection for the PDA 104(b) is keptalive.

In an exemplary implementation, the PDA 104(b) does not respond to thenotification, the PDA 104(b) will display a message informing the user102 that the communication was answered on another communication device104, also referred to as another endpoint. Furthermore, the user 102 hasan option to resume the communication on the PDA 104(b) by takingfurther action. In another example, the user 102 may query the lastseveral messages sent to the desktop computer 104(e), and choose toresume the communication on the PDS 104(b) after reviewing the history.

At Mirror 510, represents the communication sent to the active desktopcomputer 104(e) is replicated or mirrored to the personal computer104(c), which is signed in or logged on, but is not actively used toparticipate in the communication and is a non-mobile device. Replicatingor mirroring communication comprises receiving notifications,transmitting and receiving communication or instant messages, changingpresence information, changing profile information, changing contactlist, changing group information, and opening and closing a conversationon the active device is mirrored on the other one or more non-active andnon-mobile devices associated with the user 102. The mirroring improvesthe efficiency and convenience for the user 102, who does not viewrepetitive messages or need to close conversations on each communicationdevice 104 signed or logged into the system 200.

FIG. 6 illustrates a process 600 for responding to the notification torequest communication, the email, or the alert. An algorithm, known as amobile algorithm, responds to the notification requesting communication,email, or alert. The mobile algorithm constructs the state diagram forsending the notifications or alerts to the communication devices 104located on the client side 202. If the user 102 responds on the mobiledevice, the communication continues transmitting to and receiving fromthe mobile device, which is in the active mode.

This algorithm 600 is described with reference to the desktop computer104(e) and the PDA 104(b), while other devices may similarly utilizethis process. Shown at Notifications 602, represent the messenger server110(a) on the server side 204 sending the notifications of the requestto respond to the communication invitation, email, or alert. The mobileserver 110(b) may be included with the messenger server 110(a) on theserver side 204. By way of illustration, the desktop computer 104(e) andthe PDA 104(b) may receive this notification.

Shown at Not Respond 604, represents the desktop computer 104(e) notresponding to the messenger server 110(a) to the communication request,to receive email, or alert on the desktop computer 104(e). However, theconnection is kept alive on the desktop computer 104(e).

At Respond 606, represents the PDA 104(b) responding to the messengerserver 110(a) to the request for communication, to receive email, or thealert on the PDA 104(b). The communication will continue to transmit toand receive from the PDA 104(b).

At Mirror 608, represents the communication sent to the active device,the PDA 104(b), is replicated or mirrored to the inactive and non-mobiledevice, the desktop computer 104(e). Thus, the replicating or themirroring of the communication allows the user 102 to close thecommunication without viewing repetitive messages and to ensure thecommunication is sent to the alive communication devices, in order tonot miss any messages. Also, the user 102 may be able to retrieve filesor email later on the non-mobile device, the desktop computer 104(e), ifthe user 102 initially received the file or video when the user 102 wascommunicating on the PDA 104(b), in the active mode.

In an exemplary implementation, the user 102 may be activelyparticipating in a conversation on the desktop computer 104(e). Themessenger server 110(a) sends notifications of incoming new messages,emails, or alerts to the PDA 104(b) only when there is no activity onother non-mobile devices, based on the user's profile.

Similar to the algorithms described above, a switching algorithm,describes how the user 102 may switch communication from a firstcommunication device to a second communication device. The switchingalgorithm constructs a state diagram for sending the notifications oralerts to the communication devices 104 that are logged on to the IMprogram 106. The user 102 responds on the first device, thecommunication is transmitted to and received from the first device,which is in the active mode. To further enhance the user experience, themultiple simultaneous connections are kept alive, enabling the user 102to switch from the first device to the second device without having todiscontinue the communication.

In an exemplary implementation, the user 102 may sign into threecommunication devices, the mobile phone 104(a), the personal computer104(c), and the laptop 104(d), receive notifications of request forcommunication, email, or alert on these communication devices. Forexample, the user 102 responds on the personal computer 104(c) and wantsto switch to the laptop computer 104(d) in order to be mobile. As thelaptop computer 104(d) is alive, the user 102 may easily activate thelaptop computer 104(d) to start transmitting and receivingcommunication. Thus, this enhances the mobility features for the user102.

FIG. 7 illustrates a process flow 700 for responding to the notificationto request communication, email, or alert on the mobile device of FIG.6. For ease of understanding, FIG. 7 shows various aspects of the method700 within separate blocks. However, FIG. 7 shows these blocks in theorder presented only for convenience, but not for limitation.Implementations of the processing represented in these blocks mayperform this processing in any order, without departing from the scopeand spirit of the description.

In addition, implementations of the process flow 700 may combine orfurther subdivide any number of the described process blocks. Moreover,implementations of the process flow 700 may omit one or more of thedescribed blocks. For convenience only, the process flow 700 isdescribed in connection with certain components shown in FIGS. 2, 3, and6. However, it is understood that the process flow 700 may be performedwith other components without departing from the spirit and scope of thedescription.

Block 702 represents the messenger server 110(a) establishing multiplesimultaneous connections when the user 102 logs on to the IM program 106or IM service 108. Once signed in, multiple points of presence (MPOP) ofthe communication devices 104 will be available to show the list to theuser 102 and to synchronize the presence information of the user 102across all endpoints. By way of illustration, the desktop computer104(e) and the PDA 104(b) are the non-mobile and mobile communicationdevices, respectively. This presence information may include, forexample, the communication devices that are active and alive, the statusof the user 102, friendly name, personal status message (PSM), displaypicture, network addresses, cellular numbers, and the like.

Block 704 represents issuing or sending notifications of request tocommunicate, email, or alert from the messenger server 110(a) throughthe IM program 106 or the IM service 108. By way of illustration, thedesktop computer 104(e) or the PDA 104(b), may receive notificationsfrom the messenger server 110(a) based on the user's profileinformation, the active and alive modes of the communication devices 104and a number/a network address for the communication devices 104. Themessenger server 110(a) is one example, but other services or one ormore servers relating to the IM program may be connected to anapplication server to send this notification.

Additionally, distinctive alert or tones may accompany the transmissionin blocks 704 to distinguish the notifications as a request, an email,an alert, or an urgent message. These types of notifications may furtherinclude audible notifications, visual indications, vibrations, and thelike, depending on the communication devices and the user's profile.

Block 706 represents receiving a response from the user 102 in responseto the request, email, or alert. Block 708 represents a decision for theuser 102, whether to respond on the mobile device, the PDA 104(b). Ifthe conditions to the notification conditions are satisfied, then theprocess flow may take Yes branch 710 to block 712 to continue or to sendthe communication to this mobile device, PDA 104(b). Being in the activemode indicates communication is transmitted to or received on thismobile device.

From block 712, the process flow may proceed to block 714, where thecommunication is transmitted to the non-mobile devices. Only thenon-mobile devices that are alive will receive communication transmittedon the mobile device. Thus, the communication to the mobile device, PDA104(b) is replicated or mirrored to the non-mobile devices.

Furthermore, blocks 712 and 714 may be transmitted over one or morenetworks, as the mobile communication device passes into the proximityof other networks. The process flow 700 may transmit the notificationover a circuit-switched network and/or a packet-switched network.

Returning to block 708, which represent the decision whether to respondto the notification on the PDA 104(b). If the conditions to respondingon the mobile device are not satisfied, then the process flow may takeNo branch 716 to block 718. Block 718 represents the non-mobile deviceresponding to the notification and the communication transmitting to thenon-mobile communication device, the desktop computer 104(e). Asmentioned, the user 102 may be able to retrieve files or video later onthe non-mobile devices, such as the desktop computer 104(e), when theuser 102 initially received the file or video while the PDA 104(b) wasin the active mode. However, once the user 102 responds to theinvitation for a video file on one communication device, the otherinvitations may be cancelled.

Block 720 illustrates the connection is kept alive on the mobile device,the PDA 104(b), even though the user 102 did not respond on that device.By keeping the connection alive, the user 102 may switch from thedesktop computer 104(e) to the PDA 104(b) while continuing thecommunication.

Exemplary User Interface

FIGS. 8-10 illustrate an exemplary user interface usable with the IMsystem of FIG. 2. FIG. 8 shows an options interface 800, which allowsthe user to sign in to the system. Specifically, the options interface800 includes a text-based sign in portion 802, which allows the user toenter general criteria, such as automatically running, opening, orshowing Windows Live™ Messenger, allow automatic sign in when connectedto the internet, and use the same display picture and personal message.The text-based sign in portion 802 is shown as a structured sign inform, but could additionally or alternatively include one or morefreeform sign in fields. The text-based sign in portion 802 is providedfor its ease and effectiveness at automatically running or signing theuser to Windows Live™ Messenger with the same display picture andpersonal message once the user 102 signs in.

Since at least some users 102 have clear preferences for multiplecommunication device features, the options interface 800 also includes asign in at more than one place portion 804. This allows the user 102 tosign in while maintaining control and privacy of the communication. Thetext-based sign in portion 802 and 804 are provided for its ease andeffectiveness at accurately recognizing signing in at more than oneplace, putting messages on hold, signing out and renaming this place,which is readily recorded in the data. For example, the user 102 haschosen “Keep me signed in here, but don't show my messages (put messageson hold)” option. Based on the text to the sign in interface 802 andsign in at more than one place 804, the system 200 signs in the user102. The options interface 800 includes, a text-based rename placeportion 806, illustrating how the user 102 may rename this place, suchas the log in location or the communication device.

In an exemplary implementation, the user 102 may sign in or log on froma first endpoint on the communication device to the application program106 on the server 110(a). The user 102 may sign in or log on withanother communication device to the first endpoint. Thus, the otherendpoints may connect to the first endpoint, rather than connectingdirectly to the server 110(a).

In another exemplary implementation, all the endpoints in a corporationcan connect to the server 110(a) through a smaller number of endpointswithin the corporation. Thus, connecting the endpoints this way has nodirect effect regarding the user 102.

FIG. 9 shows a privacy interface 900, which allows the user 102 todetermine messages are shown or on hold on the system 200. Specifically,the privacy interface 900 includes a text-based portion 902, which showsthe user 102 the messages are on hold. Thus, the user 102 may decide toresume or go for other options. The privacy interface 900 also includesa text-based portion 904 that illustrates the messages are not shownbecause the user 102 is signed in at another place. The user may selectresume, sign out, or get help.

Furthermore, the privacy interface 900 includes a text-based portion 906to illustrate the messages have been placed on hold. Thus, the user 102may prevent another individual from viewing messages on another alivecommunication device by not showing the messages or by holding thesemessages. Also, the user 102 may prevent sending annoying soundnotifications and hiding popup to the non-active communication device(used by the other individual).

FIG. 10 illustrates an IM options interface 1000, which allows the user102 to relate presence information, profile information, privacy, andsigning out on the system 200. Interface 1002 illustrates a displaypicture and a friendly name. In particular, the options interface 1000includes a presence portion 1004, which allows the user 102 to indicatepresence as online, busy, be right back, away, in a call, out to lunchor appear offline. The options interface 1000 also includes profileinformation 1006, such as changing display picture, changing signaturesound, and changing display name. Furthermore, there is an interfacesection 1008 where the user 102 may decide to put messages on hold orsign out from here. There are additional sign out such as signing outfrom here, from school, and from everywhere, as shown at interface 1010.

In an exemplary implementation, the user 102 may log off from oneendpoint without affecting the other endpoints. For example, the user102 may sign out from home while keeping the connections alive at schooland at work. Thus, the user experience is beneficial, satisfying, andefficient with the multiple simultaneous connections on the IM program.

The subject matter described above can be implemented in hardware, orsoftware, or in both hardware and software. Although the subject matterhas been described in language specific to structural features and/ormethodological acts, it is to be understood that the subject matterdefined in the appended claims is not necessarily limited to thespecific features or acts described above. Rather, the specific featuresand acts are disclosed as exemplary forms of implementing the claimedsubject matter. For example, the methodological acts need not beperformed in the order or combinations described herein, and may beperformed in any combination of one or more acts.

The invention claimed is:
 1. A computer-implemented method for multipleconnections on an instant messaging program, the method comprising:initiating multiple connections from multiple communication devices to aparticular user account associated with a user, at least one of themultiple connections implemented on an instant messaging program withoutsigning out other communication devices, wherein the particular useraccount is associated with a single messenger server that is implementedat one or more locations; receiving at least one notification on themultiple communication devices; receiving an input responding to the atleast one notification on a first communication device of the multiplecommunication devices; placing the first communication device in anactive mode, and in response to placing the first communication devicein the active mode, causing other communication devices of the multiplecommunication devices that are not actively participating in thecommunication to hide communications via the particular user account;and transmitting the input responding to the at least one notificationfrom the first communication device that is in the active mode, thetransmitting causing the input responding to the at least onenotification from the first communication device that is in the activemode to be mirrored on the other communication devices.
 2. The method ofclaim 1, further comprising changing presence information on the instantmessaging program when the first communication device enters the activemode.
 3. The method of claim 1, further comprising keeping the multiple,simultaneous connections alive or open to receive communication ornotifications.
 4. The method of claim 1, further comprising switchingcommunication from the first communication device to a secondcommunication device of the multiple communication devices and placingthe second communication device in the active mode, as all simultaneousconnections are kept alive.
 5. The method of claim 4, further comprisingplacing on hold and not receiving messages intended for the firstcommunication device when a response from the first communication deviceis not transmitted.
 6. The method of claim 4, further comprisingreceiving communications on the second communication device when thesecond device is in the active mode.
 7. The method of claim 1, furthercomprising indicating presence on the communication devices withmultiple points of presence, wherein the communication devices are insynchronization with each other.
 8. The method of claim 1, furthercomprising connecting to an instant messaging program or serviceimplemented on a web browser.
 9. A computing device comprising: one ormore processors; one or more communication interfaces coupled to the oneor more processors; and a computer-readable storage media storinginstructions that, when executed by the one or more processors, causethe one or more processors to: initiate a connection with a particularuser account of an instant messaging program using the one or morecommunication interfaces without signaling for signing out of otherconnections associated with the particular user account from one or moreother respective communication devices, wherein initiating theconnection signals that the computing device is in an active mode;receive at least one notification; receive an input associated with aresponse to the at least one notification the computing device and inresponse to receiving the input associated with the response to the atleast one notification, signaling the one or more other respectivecommunication devices associated with the other connections to hidecommunication associated with the particular user account; andtransmitting communication associated with the particular user accountfrom the computing device that is in the active mode, the transmittingcausing the communication associated with the particular user accountfrom the computing device that is in the active mode to be mirrored onthe one or more other respective communication devices associated withthe other connection.
 10. The computing device of claim 9, wherein theconnections associated with the user are associated with a singlemessenger server that is implemented at one or more locations.
 11. Thecomputing device of claim 9, wherein the computer-readable media furthercomprises instructions which when executed by the one or moreprocessors, cause the one or more processors to transmit the response tothe one or more other communication devices.
 12. The computing device ofclaim 9, wherein the computer-readable media further comprisesinstructions which, when executed by the one or more processors, causethe one or more processors to synchronize with each of the one or moreother communication devices that are in the active mode.
 13. Thecomputing device of claim 9, wherein the mirrored communications arereceived while the computing device is in the active mode.
 14. Thecomputing device of claim 9, wherein the mirrored communications areplaced on hold if the computing device is switched out of the activemode.
 15. A computer-readable device comprising instructions that, whenexecuted by one or more processors, cause at least one of the one ormore processors to: initiate an instance of an instant messaging programassociated with a user on a communication device without triggering anautomatic signing out of one or more other instances of the instantmessaging program associated with the user on one or more othercommunication devices, wherein the instance and the one or more otherinstances are logged on to a particular account of the user associatedwith a single messenger server that is implemented at one or morelocations; receive at least one notification for the user at thecommunication device; receive a response to the at least onenotification on the communication device; set the communication deviceto an active mode; signal for a communication via the instant messagingprogram associated with the user on the one or more other communicationdevices that are not actively participating in the communication to behidden; and transmit the response while the device is in the activemode, the response being mirrored on the one or more other communicationdevices.
 16. The computer-readable device of claim 15, wherein mirroringthe response comprises at least one of a notification, an instantmessage received via the, an instant message transmitted via the, anindication of presence change, an indication of a contact list change,an indication of a change in group information, an indication of aconversation opening, or an indication of a conversation closingnotifications, transmitting and receiving instant messages, changingpresence information, changing contact list, changing group information,and opening and closing a conversation.
 17. The computer-readable deviceof claim 15, further comprising additional instructions which whenexecuted by the one or more processors, cause the one or more processorsto receive mirrored communications transmitted from the one or more ofthe other communication devices.
 18. The computer-readable device ofclaim 15, further comprising additional instructions which when executedby the one or more processors, cause the one or more processors tosynchronize the instance with the one or more other instances that arein the active mode.
 19. The computer-readable device of claim 15,further comprising additional instructions which when executed by theone or more processors, cause the one or more processors to set thecommunication device to the active mode in response to initiating theinstance of the instant messaging program.
 20. The computer-readabledevice of claim 15, wherein the instance of the instant messagingprogram is implemented on a web browser.